<?php

/**
 * UsuarioLogic
 * @package model
 * @subpackage logic
 * 
 */
class UsuarioLogic extends LogicModel {

    public function __construct() {
        parent::__construct(new UsuarioDAO());
    }

    public function obterUsuarioPorCPFeSenha($cpf, $senha) {
        $objUsuario = $this->DAO->obterUsuarioPorCPFeSenha(FormatHelper::unformatCPF($cpf), md5($senha));
        return $objUsuario;
    }
    
    public function obterUsuarioPorEmaileSenha($email, $senha){
        $objUsuario = $this->DAO->obterUsuarioPorEmaileSenha(FormatHelper::formatEmail($email), md5($senha));
        return $objUsuario;
    }
    
    public function obterUsuarioSistemaPorId($id) {
        
        # Logic
        $objColaboradorLogic = new ColaboradorLogic();
        
        # Obeter Usuario
        $exception = array();
        $exception['select']['perfil'] = "ide_perfil IN (select ide_perfil from seguranca.perfil where ide_sistema = " . OID_SIS . ")";
        $objUsuario = $this->obterPorId($id, true, $exception);
        unset($exception);

        if (is_object($objUsuario)) {
            
            $exception = array();
            $exception['select']['Controle'] = "ide_sistema = " . OID_SIS;
            $objColaborador = $objColaboradorLogic->obterPorId($objUsuario->getColaborador()->getId(), true, $exception);
            unset($exception);

            if (is_object($objColaborador)) {

                $objControle = $objColaborador->getControle();
                if (is_array($objControle)) {
                    $objColaborador->setControle($objControle[0]);
                }

                $objUsuario->setColaborador($objColaborador);
                unset($objControle);
            }

            if (is_array($objUsuario->getPerfil())) {
                $objPerfil = $objUsuario->getPerfil();
                $objUsuario->setPerfil($objPerfil[0]);
                unset($objPerfil);
            }

        }

        return $objUsuario;
    }

}

?>